//
//  SXStatusViewModel.swift
//  微博09项目
//
//  Created by mac on 15/9/9.
//  Copyright © 2015年 itcast. All rights reserved.
//

import UIKit
 let SXStatusNormalCellID = "SXStatusNormalCellID"
 let SXStatusForwardCellID = "SXStatusForwardCellID"
class SXStatusViewModel: NSObject {
   
    //拥有一个微博模型
    var status:Status
   
    /// 如果是原创微博有图，在 pic_urls 数组中记录
    /// 如果是`转发微博`有图，在 retweeted_status.pic_urls 数组中记录
    /// 如果`转发微博`有图，pic_urls 数组中没有图
    /// 配图缩略图 URL 数组
    var thumbnailURLs: [NSURL]?
    //设置缓存数据行高
    var rowHeight:CGFloat = 0
    //转发微博的格式: @作者:原文
    ///
    var forWardText: String?{
        let useName = status.retweeted_status?.user?.name ?? ""
        let forWardText = status.retweeted_status?.text ?? ""
        return "@\(useName)\(forWardText)"
    }
    
    /// 计算型属性：只有在用户点击一张图像的时候，根据 缩略图地址临时生成中等尺寸的图像数组
    /// 计算方法：将 thumbnail 替换成 bmiddle
    /// 中等尺寸的图像 URL 数组 - 用户不一定会点击所有的图像去查看
    //会员等级的头像
    var bmiddleURLs:[NSURL]?{
        //1.判断thumbnailURLs是否为nil
        guard let urls = thumbnailURLs else{
            return nil
        }
        //顺序替换每一个url 字符串中的单词
        var array = [NSURL]()
        
        for url in urls{
            let urlString = url.absoluteString.stringByReplacingOccurrencesOfString("/thumbnail/", withString: "/bmiddle/")
            
            array.append(NSURL(string: urlString)!)
        }
        return array
    }
    //判断返回怎样的cell
    var cellID:String{
        return status.retweeted_status != nil ? SXStatusForwardCellID: SXStatusNormalCellID
    }
    //MARK:- 构造函数
    init(status:Status ) {
        self.status = status
        //给缩略图设置数值
        //判断是否有图像
        //转发微博计算数组重构
        if let urls = status.retweeted_status?.pic_urls ?? status.pic_urls{
            thumbnailURLs = [NSURL]()
            
            //遍历数组
            for dict in urls{
                thumbnailURLs?.append(NSURL(string: dict["thumbnail_pic"]!)!)
            }
        }
        super.init()
    }
    //获取头像的Url
    var stringUrlIcon:NSURL {
        return NSURL(string: status.user?.profile_image_url ?? "")!
    }
    //返回的头像
    var userVipImage:UIImage? {
        switch(status.user?.verified ?? -1) {
        case 0: return UIImage(named: "avatar_vip")
        case 2, 3, 5: return UIImage(named: "avatar_enterprise_vip")
        case 220: return UIImage(named: "avatar_grassroot")
        default: return nil
        }
    }
 
    var userMemberImage:UIImage?{
        if status.user?.mbrank > 0 && status.user?.mbrank < 7{
            return UIImage(named: "common_icon_membership_level\(status.user!.mbrank)")
        }
        return nil
    }
   override var description:String{
        return status.description + " 缩略图 URL 数组 \(thumbnailURLs)"
    }
   
}
